package com.jg.visitor.service;

import com.jg.visitor.common.bean.PageDTO;
import com.jg.visitor.controller.dto.ApproverApproveRecordDTO;
import com.jg.visitor.controller.dto.OutInHistoryDTO;
import com.jg.visitor.controller.dto.VisitorApplyRecordDTO;
import com.jg.visitor.controller.dto.VisitorInfoDTO;
import com.jg.visitor.controller.vo.VisitorApplyRecordVO;
import com.jg.visitor.domain.VisitorInfo;
import com.baomidou.mybatisplus.extension.service.IService;


/**
* @author Administrator
* 针对表【visitor_info(访客信息表)】的数据库操作Service
* 2022-04-25 23:43:30
*/
public interface VisitorInfoService extends IService<VisitorInfo> {

    /**
     * 查询当前的访客信息
     */
    VisitorInfoDTO selectLoginVisitorInfo();

    /**
     * 添加或者重新编辑访客信息
     */
    VisitorInfoDTO addOrEditVisitorInfo(VisitorInfoDTO dto);

    /**
     * 访客新增申请单
     */
    void addApproveRecord(VisitorApplyRecordVO dto);

    /**
     * 分页查询访客单记录
     */
    PageDTO<ApproverApproveRecordDTO> selectSelfRecord(Integer page, Integer pageSize, Integer status);

    /**
     * 访客身份证解绑
     */
    boolean idCardUnbound();

    /**
     * 访客获取自己的通行码
     */
    String getQRCode();

    /**
     * 访客查询进出记录
     */
    PageDTO<OutInHistoryDTO> selectOutInHistory(Integer page,Integer pageSize);

    /**
     * 访客取消申请单
     */
    void cancelApproveRecord(Long recordId);

    /**
     * 检测访客是否还能添加申请单
     */
    boolean visitorCanAddRecord();

}
